#define  _CRT_SECURE_NO_WARNINGS
// class Solution {
// public:
//     bool increasingTriplet(vector<int>& nums) {
//         int n1, n2;
//         int flag1 = 1, flag2 = 1, flag3 = 1;
//         for (auto e : nums)
//             if (flag1) n1 = e, flag1 = 0;
//             else if (e <= n1) n1 = e;
//             else if (flag2) n2 = e, flag2 = 0;
//             else if (e <= n2) n2 = e;
//             else if (flag3) {flag3 = 0; break;}
//         return flag3 == 0;
//     }
// };
class Solution {
public:
    bool increasingTriplet(vector<int>& nums) {
        int n1 = nums[0], n2 = INT_MAX;
        for (auto e : nums) {
            if (e > n2) return true;
            else if (e > n1) n2 = e;
            else n1 = e;
        }
        return false;
    }
};